The internal header node/detail/node.h is included by public headers;
YAML::detail::node is implemented in the header itself, and thus it gets
inlined... except for its static m_amount class member, which is
instantiated in the library only. Right now all the symbols of yaml-cpp
are exported (nothing is hidden), so the linker will find node::m_amount
in the yaml-cpp library.
As solution/workaround, explicitly export YAML::detail::node::m_amount.
Simon Quigley [Sat, 13 Nov 2021 20:48:59 +0000 (20:48 +0000)]
symbol-visibility
commit df9206778fe9ff1bdd56d975c29c43dfe1e66de7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Fri Nov 23 15:26:53 2018 +1100
Export only YAML_CPP_API-tagged symbols on Linux.
This marks classes tagged with YAML_CPP_API with visibility("default"), to
explicitly export them, and then makes the default visibility "hidden" via
-fvisibility=hidden.
This reduces the number of exported symbols by more than 50%, which has
a small application start-up time and memory useage benefit. It also
makes it more feasible to audit the set of exported symbols in automated
ABI compatibility systems.
This cherry-picks the (so-far-unmerged) upstream pull request.
The final 5 commits of that PR are not included; they only add tests
to a file not present in the 0.6.2 (or 0.6.3) release.
simply set a hardcoded recursion limit to 2000 (inspired by Python's)
to avoid infinitely recursing into arbitrary data structures
assert() the depth. unsure if this is the right approach, but given
that HandleNode() is "void", I am not sure how else to return an
error. the problem with this approach of course is that it will still
crash the caller, unless they have proper exception handling in place.
Closes: #459
Gbp-Pq: Name fix-unbounded-recursion-depth.patch
Simon Quigley [Thu, 26 Aug 2021 22:24:06 +0000 (23:24 +0100)]
symbol-visibility
commit df9206778fe9ff1bdd56d975c29c43dfe1e66de7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Fri Nov 23 15:26:53 2018 +1100
Export only YAML_CPP_API-tagged symbols on Linux.
This marks classes tagged with YAML_CPP_API with visibility("default"), to
explicitly export them, and then makes the default visibility "hidden" via
-fvisibility=hidden.
This reduces the number of exported symbols by more than 50%, which has
a small application start-up time and memory useage benefit. It also
makes it more feasible to audit the set of exported symbols in automated
ABI compatibility systems.
Paul Novotny [Thu, 26 Aug 2021 22:24:06 +0000 (23:24 +0100)]
Install libs and cmake files to the Debian location
Forwarded: not-needed
Last-Update: 2015-11-29
Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
packaging, have cmake install the libs directly. This is needed so the CMake
development files point to the correct location for the libs. Also, install
yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
yaml-cpp-targets.cmake.
[changes brought forward from 0.6.2-4+rpi1 by Peter Michael Green <plugwash@raspbian.org> at Fri, 18 Jan 2019 20:49:45 +0000]
* Update symbols file for raspbian.
This cherry-picks the (so-far-unmerged) upstream pull request.
The final 5 commits of that PR are not included; they only add tests
to a file not present in the 0.6.2 (or 0.6.3) release.
simply set a hardcoded recursion limit to 2000 (inspired by Python's)
to avoid infinitely recursing into arbitrary data structures
assert() the depth. unsure if this is the right approach, but given
that HandleNode() is "void", I am not sure how else to return an
error. the problem with this approach of course is that it will still
crash the caller, unless they have proper exception handling in place.
Closes: #459
Gbp-Pq: Name fix-unbounded-recursion-depth.patch
Simon Quigley [Mon, 22 Mar 2021 21:04:27 +0000 (21:04 +0000)]
symbol-visibility
commit df9206778fe9ff1bdd56d975c29c43dfe1e66de7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Fri Nov 23 15:26:53 2018 +1100
Export only YAML_CPP_API-tagged symbols on Linux.
This marks classes tagged with YAML_CPP_API with visibility("default"), to
explicitly export them, and then makes the default visibility "hidden" via
-fvisibility=hidden.
This reduces the number of exported symbols by more than 50%, which has
a small application start-up time and memory useage benefit. It also
makes it more feasible to audit the set of exported symbols in automated
ABI compatibility systems.
Paul Novotny [Mon, 22 Mar 2021 21:04:27 +0000 (21:04 +0000)]
Install libs and cmake files to the Debian location
Forwarded: not-needed
Last-Update: 2015-11-29
Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
packaging, have cmake install the libs directly. This is needed so the CMake
development files point to the correct location for the libs. Also, install
yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
yaml-cpp-targets.cmake.
This cherry-picks the (so-far-unmerged) upstream pull request.
The final 5 commits of that PR are not included; they only add tests
to a file not present in the 0.6.2 (or 0.6.3) release.
simply set a hardcoded recursion limit to 2000 (inspired by Python's)
to avoid infinitely recursing into arbitrary data structures
assert() the depth. unsure if this is the right approach, but given
that HandleNode() is "void", I am not sure how else to return an
error. the problem with this approach of course is that it will still
crash the caller, unless they have proper exception handling in place.
Closes: #459
Gbp-Pq: Name fix-unbounded-recursion-depth.patch
Simon Quigley [Tue, 26 May 2020 15:56:33 +0000 (16:56 +0100)]
symbol-visibility
commit df9206778fe9ff1bdd56d975c29c43dfe1e66de7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Fri Nov 23 15:26:53 2018 +1100
Export only YAML_CPP_API-tagged symbols on Linux.
This marks classes tagged with YAML_CPP_API with visibility("default"), to
explicitly export them, and then makes the default visibility "hidden" via
-fvisibility=hidden.
This reduces the number of exported symbols by more than 50%, which has
a small application start-up time and memory useage benefit. It also
makes it more feasible to audit the set of exported symbols in automated
ABI compatibility systems.
Paul Novotny [Tue, 26 May 2020 15:56:33 +0000 (16:56 +0100)]
Install libs and cmake files to the Debian location
Forwarded: not-needed
Last-Update: 2015-11-29
Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
packaging, have cmake install the libs directly. This is needed so the CMake
development files point to the correct location for the libs. Also, install
yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
yaml-cpp-targets.cmake.
This cherry-picks the (so-far-unmerged) upstream pull request.
The final 5 commits of that PR are not included; they only add tests
to a file not present in the 0.6.2 (or 0.6.3) release.
simply set a hardcoded recursion limit to 2000 (inspired by Python's)
to avoid infinitely recursing into arbitrary data structures
assert() the depth. unsure if this is the right approach, but given
that HandleNode() is "void", I am not sure how else to return an
error. the problem with this approach of course is that it will still
crash the caller, unless they have proper exception handling in place.
Closes: #459
Gbp-Pq: Name fix-unbounded-recursion-depth.patch
Simon Quigley [Thu, 14 May 2020 08:29:07 +0000 (09:29 +0100)]
symbol-visibility
commit df9206778fe9ff1bdd56d975c29c43dfe1e66de7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Fri Nov 23 15:26:53 2018 +1100
Export only YAML_CPP_API-tagged symbols on Linux.
This marks classes tagged with YAML_CPP_API with visibility("default"), to
explicitly export them, and then makes the default visibility "hidden" via
-fvisibility=hidden.
This reduces the number of exported symbols by more than 50%, which has
a small application start-up time and memory useage benefit. It also
makes it more feasible to audit the set of exported symbols in automated
ABI compatibility systems.
Paul Novotny [Thu, 14 May 2020 08:29:07 +0000 (09:29 +0100)]
Install libs and cmake files to the Debian location
Forwarded: not-needed
Last-Update: 2015-11-29
Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
packaging, have cmake install the libs directly. This is needed so the CMake
development files point to the correct location for the libs. Also, install
yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
yaml-cpp-targets.cmake.
This cherry-picks the (so-far-unmerged) upstream pull request.
The final 5 commits of that PR are not included; they only add tests
to a file not present in the 0.6.2 (or 0.6.3) release.
simply set a hardcoded recursion limit to 2000 (inspired by Python's)
to avoid infinitely recursing into arbitrary data structures
assert() the depth. unsure if this is the right approach, but given
that HandleNode() is "void", I am not sure how else to return an
error. the problem with this approach of course is that it will still
crash the caller, unless they have proper exception handling in place.
Closes: #459
Gbp-Pq: Name fix-unbounded-recursion-depth.patch
Simon Quigley [Wed, 13 May 2020 17:26:42 +0000 (18:26 +0100)]
symbol-visibility
commit df9206778fe9ff1bdd56d975c29c43dfe1e66de7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Fri Nov 23 15:26:53 2018 +1100
Export only YAML_CPP_API-tagged symbols on Linux.
This marks classes tagged with YAML_CPP_API with visibility("default"), to
explicitly export them, and then makes the default visibility "hidden" via
-fvisibility=hidden.
This reduces the number of exported symbols by more than 50%, which has
a small application start-up time and memory useage benefit. It also
makes it more feasible to audit the set of exported symbols in automated
ABI compatibility systems.
Paul Novotny [Wed, 13 May 2020 17:26:42 +0000 (18:26 +0100)]
Install libs and cmake files to the Debian location
Forwarded: not-needed
Last-Update: 2015-11-29
Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
packaging, have cmake install the libs directly. This is needed so the CMake
development files point to the correct location for the libs. Also, install
yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
yaml-cpp-targets.cmake.
Simon Quigley [Mon, 7 Jan 2019 22:00:33 +0000 (22:00 +0000)]
symbol-visibility
commit df9206778fe9ff1bdd56d975c29c43dfe1e66de7
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date: Fri Nov 23 15:26:53 2018 +1100
Export only YAML_CPP_API-tagged symbols on Linux.
This marks classes tagged with YAML_CPP_API with visibility("default"), to
explicitly export them, and then makes the default visibility "hidden" via
-fvisibility=hidden.
This reduces the number of exported symbols by more than 50%, which has
a small application start-up time and memory useage benefit. It also
makes it more feasible to audit the set of exported symbols in automated
ABI compatibility systems.
Paul Novotny [Mon, 7 Jan 2019 22:00:33 +0000 (22:00 +0000)]
Install libs and cmake files to the Debian location
Forwarded: not-needed
Last-Update: 2015-11-29
Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
packaging, have cmake install the libs directly. This is needed so the CMake
development files point to the correct location for the libs. Also, install
yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
yaml-cpp-targets.cmake.
Paul Novotny [Wed, 12 Oct 2016 23:48:11 +0000 (00:48 +0100)]
Install libs and cmake files to the Debian location
Forwarded: not-needed
Last-Update: 2015-11-29
Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
packaging, have cmake install the libs directly. This is needed so the CMake
development files point to the correct location for the libs. Also, install
yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
yaml-cpp-targets.cmake.
Lifeng Sun [Fri, 30 Aug 2013 10:29:05 +0000 (11:29 +0100)]
yaml-cpp (0.5.1-1) unstable; urgency=low
* New upstream release. (Closes: #706708)
* Bump Standards-Version to 3.9.4.
* libyaml-cpp-dev: remove multiarch path in yaml-cpp.pc to make
lintian happy.
* debian/copyright: new Format URI.
* debian/control: remove Vcs-Svn field.